package controle;

import java.util.Date;

import javax.swing.JButton;
import javax.swing.JLabel;

@SuppressWarnings("serial")
public class Horario extends JLabel implements Runnable{

	Date data;
	Date termino;
	JButton botao;
	EncerraServidor finalizador;
	Thread fim;
	
	public Horario(JButton botao, Date data){
		this.botao = botao;
		this.data = data;
		finalizador = new EncerraServidor();
		fim = new Thread(finalizador);
		setText(this.data.toString());
		termino = new Date(data.getTime() + data.getTime());
	}

	@Override
	public void run() {
		while(true){
			data.setTime(System.currentTimeMillis());
			setText(data.toString());
			
			if ((getFinalizador().isFimVotacao() == false) && 
					(getData().getTime() >= getTermino().getTime())){
				getFinalizador().setFimVotacao(true);
				getBotao().setText("Acabou!");
				fim.start();
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	public Thread getFim(){
		return fim;
	}

	public EncerraServidor getFinalizador() {
		return finalizador;
	}

	public void setTermino(int fim) {
		termino.setTime(data.getTime() + fim);
	}

	public Date getTermino() {
		return termino;
	}

	public void setTermino(Date termino) {
		this.termino = termino;
	}

	public Date getData() {
		return data;
	}

	public JButton getBotao() {
		return botao;
	}
	
}
